package y2016.date0916.pm.继承与super;

import org.junit.jupiter.api.Test;

public class Son extends Parent {

    public Son() {
//		super();
//		this(555);//调用本身的构造方法。如果super(i)构造是自动添加的，那么将输出555，否则输出父类构造结果。
        //如果有super(),执行此父类构造，值为当前参数值，相当于覆盖；如果无super()先执行父类构造。
        System.out.println("\nsuper()方法在构造函数中：;\n如果写，必须在第一行,因为系统先执行父类构造方法\n即构造函数调用必须在第一行\n");
    }

    public Son(int i) {
//		super(i);//super(i)构造不是自动添加并执行的，而是先执行父类构造，再执行子类构造
    }

    public Son(int i, String str) {
    }

    @Override
    protected void print(String str) {
        System.out.println("\n子类继承自父类的方法：将覆盖掉父类的方法，如需运行父类方法，须手动调用，例如：super.print()\n");
        super.print(str);
    }

    @Test
    public void main() throws Exception {
        System.out.println("err和out打印输出是非同步的======\n\n");
        Son son = new Son();
        son.print("子类来了");

    }
}


